package com.rc.web.mapper;

import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.rc.pojo.dto.farmapply.FarmApplyPageQuery;
import com.rc.pojo.po.FarmApply;
import com.rc.pojo.vo.farmapply.PageFarmApplyVO;

import static com.rc.pojo.po.table.FarmApplyTableDef.FARM_APPLY;

/**
 * 农场申请表 映射层。
 * 提供农场申请相关的数据库操作接口
 */
public interface FarmApplyMapper extends BaseMapper<FarmApply> {

    /**
     * 分页查询农场申请
     * @param dto 分页查询条件
     * @return 分页结果
     */
    default Page<PageFarmApplyVO> selectPage(FarmApplyPageQuery dto){
        Page<PageFarmApplyVO> page = Page.of(dto.getCurrent(), dto.getPageSize());

        return paginateAs(page, QueryWrapper.create()
                        .where(FARM_APPLY.STATUS.eq(dto.getStatus()))
                        .and(FARM_APPLY.FARM_NAME.like(dto.getFarmName()))
                , PageFarmApplyVO.class);
    }

    /**
     * 根据手机号查询农场申请
     * @param phone 手机号
     * @return 农场申请实体
     */
    default FarmApply selectOneByPhone(String phone){
        return selectOneByQuery(QueryWrapper.create()
                .where(FARM_APPLY.PHONE.eq(phone))
        );
    }
}
